#!/bin/bash

# 设置 CPU 使用率的阈值,一般设置90；这里是demo，所以用30
CPU_THRESHOLD=30

# 获取占用 CPU 最高的进程 ID
HIGH_CPU_PID=$(ps -eo pid,pcpu --sort=-pcpu | grep -v '^ PID' | sed -n 2p | awk '{print $1}')

# 获取该进程的 CPU 使用率
HIGH_CPU_USAGE=$(ps -p $HIGH_CPU_PID -o %cpu= | awk '{print int($1)}')

# 检查 CPU 使用率是否超过阈值
if [ "$HIGH_CPU_USAGE" -ge "$CPU_THRESHOLD" ]; then
    echo "进程 ID $HIGH_CPU_PID 占用 CPU $HIGH_CPU_USAGE%，超过阈值 $CPU_THRESHOLD%"
    echo "终止进程 $HIGH_CPU_PID"
    # kill -9 $HIGH_CPU_PID  #  生产环境要注意，不要直接kill进程，可以抛出告警或打到日志。
else
    echo "所有进程的 CPU 使用率都在正常范围内。"
fi
